#!/usr/bin/env python
# -*- encoding: utf-8 -*-
"""
主题: 编码和解码十六进制数
问题: 你想将一个十六进制字符串解码成一个字节字符串或者将一个字节字符串编码成一个十六进制字符串。
提示 : 
    1. base64 只能操作大写形式的十六进制字母
"""

import binascii
import base64

s = b'hello'
print(f"{s = }")

def recipe1():
    '''解码或编码一个十六进制的原始字符串'''

    # Encode as hex
    h = binascii.b2a_hex(s)
    print(f"{h = }")
    # Decode back to bytes
    print(f"{binascii.a2b_hex(h) = }")

def recipe2():
    h = base64.b16encode(s)
    print(f"{h = }")
    print(f"{base64.b16decode(h) = }")

    # 以Unicode形式输出
    print(f"{h.decode('ascii') = }")

def main():
    print('recipe1'.center(20, '*'))
    recipe1()
    print('recipe2'.center(20, '*'))
    recipe2()

if __name__ == '__main__':
    main()            

